package com.cqc.other;

import org.junit.Test;

/**
 * 1. 十进制转其他进制
 * 要将十进制数转换为其他进制（如二进制、八进制或十六进制），可以使用Integer或Long类提供的静态方法：
 * <p>
 * 转二进制: Integer.toBinaryString(int i) 或 Long.toBinaryString(long i)
 * 转八进制: Integer.toOctalString(int i) 或 Long.toOctalString(long i)
 * 转十六进制: Integer.toHexString(int i) 或 Long.toHexString(long i)
 * 2. 其他进制转十进制
 * 如果需要将其他进制的字符串转换回十进制，可以使用Integer或Long类的parseInt方法，指定基数（即进制）作为参数：
 * <p>
 * 二进制转十进制: Integer.parseInt(String s, 2) 或 Long.parseLong(String s, 2)
 * 八进制转十进制: Integer.parseInt(String s, 8) 或 Long.parseLong(String s, 8)
 * 十六进制转十进制: Integer.parseInt(String s, 16) 或 Long.parseLong(String s, 16)
 */
public class HexConversion {
    public static void main(String[] args) {
        int decimalNumber = 255;

        // 转换为不同进制的字符串表示
        String binaryString = Integer.toBinaryString(decimalNumber);
        String octalString = Integer.toOctalString(decimalNumber);
        String hexString = Integer.toHexString(decimalNumber);

        System.out.println("Binary: " + binaryString);
        System.out.println("Octal: " + octalString);
        System.out.println("Hex: " + hexString);

        // 将不同进制的字符串转换回十进制数字
        int fromBinary = Integer.parseInt(binaryString, 2);
        int fromOctal = Integer.parseInt(octalString, 8);
        int fromHex = Integer.parseInt(hexString, 16);

        System.out.println("From Binary: " + fromBinary);
        System.out.println("From Octal: " + fromOctal);
        System.out.println("From Hex: " + fromHex);


    }

    @Test
    public void f1() throws Exception {
        System.out.println(Integer.parseInt("0x0000000719173c50".substring(2), 16));
    }
}